
let error () = print_endline "Tapez ./CartographX -help pour acceder a l'aide"



   let rec pars_arg array  = 
 if (Sys.argv.(1)= "-help" || Sys.argv.(1)= "--help") then print_endline "Aide :

Une fois compliler tapez ./CartographX pour lancer l'interface graphique
	Pour utiliser le mode console tapez : 	
	./CartographX Nom_de_votre_Image CMD
	
Liste de CMD :

	-contour 
	(sert a afficher les contours de la carte en fonction des couleurs)

	-cadrillage int (int repesente le nombre de point du cadrillage)
	(sert a afficher un cadrillage par dessus l'image charge)
	
	-obj nom_du_fichier_obj nom_du_fichier_couleur int
	(sert a creer un point obj)

A savoir : Vous pouvez appeller plusieurs CMD en meme temps
		ex: ./CartographX lol.bmp -contour -cadrillage 50
"
 else
   let var_img = Sdlloader.load_image (Sys.argv.(1)) in
     let i = ref 2 in
     while !i <= ((Array.length Sys.argv)-1) do 
       match Sys.argv.(!i) with
	 |"-contour" -> Traitement.affich(Traitement.contour (var_img)); i:= !i+1;
	 |"-cadril" ->if((!i+1) <= ((Array.length Sys.argv)-1))
	   then
	     begin
	       Traitement.affich(Traitement.cadrillage(var_img)(int_of_string(Sys.argv.(!i+1))));
	       i:= !i+2;
	     end
	   else
	     error();
	 |"-diago" ->if((!i+1) <= ((Array.length Sys.argv)-1))
	   then
	     begin
	       Traitement.affich(Traitement.diagonale(var_img)(int_of_string(Sys.argv.(!i+1))));
	       i:=!i+2;
	     end
	   else
	     error();
	 |"-obj" -> if((!i+3) <= ((Array.length Sys.argv)-1))
	   then
	     begin
	       Traitement.sortie var_img (int_of_string(Sys.argv.(!i+3))) (Sys.argv.(!i+1)) (Sys.argv.(!i+2));
	       i:=!i+4;
	     end	
	   else
	     error();
	 |"-reduc" ->let imgref= ref(var_img) in
	     if((!i+1) <= ((Array.length Sys.argv)-1)) then
	       begin	     
		 Traitement.affich(Traitement.tikhonov imgref (int_of_string(Sys.argv.(!i+1))));
		 i:=!i+2;
	       end	   
	     else
	     error();
 	 | _ -> error();
     done;;


   let appel () = if ((Array.length Sys.argv) < 2) then
     Graph.main ()
   else     
   (pars_arg Sys.argv)




(* Main *)
let main () =
  begin
    (* Initialisation de SDL *)
    Traitement.sdl_init ();
    appel ();
    exit 0
  end



let _ = main ()
